﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace CDSBDemandControl.View.Web
{
    public partial class Template : System.Web.UI.MasterPage
    {
        List<HtmlGenericControl> opcoesDiv = new List<HtmlGenericControl>();
        List<RadioButton> opcoesRdb = new List<RadioButton>();

        protected void Page_Load(object sender, EventArgs e)
        {
            //Validação de segurança
            string str = Request.LogonUserIdentity.Name.Substring((Request.LogonUserIdentity.Name.LastIndexOf('\\') + 1));

            opcoesDiv.Add(DivFila);
            opcoesDiv.Add(DivEsteira);
            opcoesDiv.Add(DivDisponibilidade);
            opcoesDiv.Add(DivAtrasos);
            opcoesDiv.Add(DivCodeReview);
            opcoesDiv.Add(DivRanking);
            opcoesDiv.Add(DivFabrica);
            opcoesDiv.Add(DivSuporte);
            opcoesDiv.Add(DivAlocacao);
            opcoesDiv.Add(DivSolicitacoesSites);
            opcoesDiv.Add(DivManagementTeamTasks);
            opcoesDiv.Add(DivScenariosAndTasks);

            opcoesRdb.Add(RdbFila);
            opcoesRdb.Add(RdbEsteira);
            opcoesRdb.Add(RdbDisponibilidade);
            opcoesRdb.Add(RdbAtrasos);
            opcoesRdb.Add(RdbCodeReview);
            opcoesRdb.Add(RdbRanking);
            opcoesRdb.Add(RdbFabrica);
            opcoesRdb.Add(RdbSuporte);
            opcoesRdb.Add(RdbAlocacao);
            opcoesRdb.Add(RdbSolicitacoesSites);
            opcoesRdb.Add(RdbManagementTeamTasks);
            opcoesRdb.Add(RdbScenariosAndTasks);

            string Opcao = Page.Page.ToString().Split('_')[1].ToLower();

            if (Opcao == "alocacaoanual" || Opcao == "newalocacao")
                Opcao = "alocacao";

            if(!Page.IsPostBack)
                this.ConfigurarLayout(Opcao);

        }

        private void ConfigurarLayout(string Opcao)
        {
            this.DesmarcarDiv(opcoesDiv.FindAll(delegate(HtmlGenericControl ctr) { return ctr.ID.ToLower() != "div" + Opcao; }));
            this.MarcarDiv(opcoesDiv.Find(delegate(HtmlGenericControl ctr) { return ctr.ID.ToLower() == "div" + Opcao; }));
            this.DesmarcarRdb(opcoesRdb.FindAll(delegate(RadioButton ctr) { return ctr.ID.ToLower() != "rdb" + Opcao; }));
            this.MarcarRdb(opcoesRdb.Find(delegate(RadioButton ctr) { return ctr.ID.ToLower() == "rdb" + Opcao; }));
        }

        protected void Img_Click(object sender, ImageClickEventArgs e)
        {
            string Opcao = ((ImageButton)sender).ID.Substring(3, ((ImageButton)sender).ID.Length - 3);
            this.Navigate(Opcao);
        }

        private void Navigate(string Opcao)
        {
            Response.Redirect(Opcao + ".aspx");
        }

        private void DesmarcarRdb(List<RadioButton> list)
        {
            foreach (RadioButton Rdb in list)
            {
                Rdb.Checked = false;
            }
        }

        protected void Rdb_CheckedChanged(object sender, EventArgs e)
        {
            if (((CheckBox)sender).Checked)
            {
                string Opcao = ((CheckBox)sender).ID.Substring(3, ((CheckBox)sender).ID.Length - 3);
                this.Navigate(Opcao);
                
            }
        }

        private void MarcarRdb(RadioButton Rdb)
        {
            Rdb.Checked = true;
        }

        private void MarcarDiv(HtmlGenericControl ctr)
        {
            ((HtmlGenericControl)ctr).Attributes.CssStyle.Add("background-color", "#E1ECFC");
        }

        private void DesmarcarDiv(List<HtmlGenericControl> list)
        {
            foreach (HtmlGenericControl ctr in list)
            {
                ((HtmlGenericControl)ctr).Attributes.CssStyle.Remove("background-color");   
            }            
        }
    }
}
